public class code03 {
//    力扣 150 二叉树的右视图
public List<Integer> rightSideView(TreeNode root) {
    List<Integer> re = new ArrayList<>();
    getRe(root, 0, re);
    return re;
}

    public void getRe(TreeNode root, int depth, List<Integer> re) {
        // 设置返回条件
        if(root == null) {
            return;
        }

        // 记录最右侧元素
        if(depth == re.size()) {
            // 这里要记录的就是在当前深度上首次遇见的元素
            re.add(root.val);
        }
        // 题目要求的是右视图，这里就需要先从右边开始往深处递归
        getRe(root.right, depth + 1, re);
        getRe(root.left, depth + 1, re);
    }
}
